מבחן סוף סמסטר מועד ב'

Σχετικά έγγραφα
חורף תש''ע פתרון בחינה סופית מועד א'

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

3-9 - a < x < a, a < x < a

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

Logic and Set Theory for Comp. Sci.

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

לוגיקה ותורת הקבוצות אביבתשס ז מבחןסופי מועדב בהצלחה!

ל הזכויות שמורות לדפנה וסטרייך

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

שאלה 1 V AB פתרון AB 30 R3 20 R

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

תרגיל 13 משפטי רול ולגראנז הערות

גבול ורציפות של פונקציה סקלרית שאלות נוספות

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

תרגול פעולות מומצאות 3

תרגיל 7 פונקציות טריגונומטריות הערות

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

סיכום- בעיות מינימוםמקסימום - שאלון 806

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

אלגברה ליניארית (1) - תרגיל 6

{ : Halts on every input}

מודלים חישוביים תרגולמס 5

תרגול מס' 6 פתרון מערכת משוואות ליניארית

אלגברה מודרנית פתרון שיעורי בית 6

gcd 24,15 = 3 3 =

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

אינפי - 1 תרגול בינואר 2012

השאלות..h(k) = k mod m

קיום ויחידות פתרונות למשוואות דיפרנציאליות

אוטומטים- תרגול 8 שפות חסרות הקשר

תורת הקומפילציה הרצאה 4 ניתוח תחבירי )Parsing( של דקדוקי LR(0) ו-( LR(1 )חזרה + המשך(

אלגוריתמים 1, סמסטר אביב 2017

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ד (2014) דפי עזר

רשימת משפטים והגדרות

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

מתמטיקה בדידה תרגול מס' 5

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

מתמטיקה בדידה תרגול מס' 12

גירסה תורת הקומפילציה

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

{ } { } { A חוקי דה-מורגן: הגדרה הסתברות מותנית P P P. נוסחת בייס ) :(Bayes P P נוסחת ההסתברות הכוללת:

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות


מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

אלגברה לינארית (1) - פתרון תרגיל 11

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

הגדרה: מצבים k -בני-הפרדה

מבחן במודלים חישוביים + פתרון מוצע

אוסף שאלות מס. 3 פתרונות

אם לא דברנו בסוף מספיק על שרשראות עם מספר מצבים אינסופי פשוט תתעלמו מהתרגילים המתאימים.

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

סדרות - תרגילים הכנה לבגרות 5 יח"ל

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

Regular Expressions (RE)

Domain Relational Calculus דוגמאות. {<bn> dn(<dn, bn> likes dn = Yossi )}

ב ה צ ל ח ה! /המשך מעבר לדף/

תכנות בשפת C פרק שלישי: בקרת זרימה שייקה בילו יועץ ומרצה בכיר למדעי המחשב וטכנולוגית מידע מומחה למערכות מידע חינוכיות, אקדמיות ומנהליות

ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי

רשימת בעיות בסיבוכיות

אלגברה ליניארית 1 א' פתרון 2

2 שאלות )בחירה מ - 4( סה"כ 25 נקודות לכל שאלה 22 נקודות

( k) ( ) = ( ) ( ) ( ) ( ) A Ω P( B) P A B P A P B תכונות: A ו- B ב"ת, אזי: A, B ב "ת. בינומי: (ההסתברות לk הצלחות מתוך n ניסויים) n.

קובץ שאלות ופתרונות של שאלות ממבחנים מנושאים שונים

מתמטיקה בדידה תרגול מס' 13

תורת הקבוצות תרגיל בית 2 פתרונות

התפלגות χ: Analyze. Non parametric test

(ספר לימוד שאלון )

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

דיאגמת פאזת ברזל פחמן

מתמטיקה בדידה תרגול מס' 2

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

מודלים חישוביים תרגולמס 7

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

אלגברה ליניארית 1 א' פתרון 7

מבני נתונים מבחן מועד א' סמסטר אביב תשס"ו

הרצאה. α α פלוני, וכדומה. הזוויות α ל- β שווה ל-

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

Transcript:

13.03.2012 מבחן סוף סמסטר מועד ב' מרצה אחראי: פרופ"ח ארז פטרנק מתרגלים: עדי סוסנוביץ מיה ארבל הוראות: א. ב. ג. ד. ה. ו. ז. ח. ט. י. המבחן אנונימי! נא לרשום רק מספר זהות ולא את השם. בטופס המבחן 11 עמודים מהם 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. משך המבחן שלוש שעות (180 דקות). אסור כל חומר עזר פרט לדף הנוסחאות המצורף לבחינה. במבחן 6 שאלות. כל השאלות הינן חובה. משקל כל שאלה מופיע בראשיתה. (חלוקת המשקל בין הסעיפים בכל שאלה אינה בהכרח אחידה.) ניתן לציין לגבי סעיף או שאלה "לא יודע/ת". תשובה זו תזכה ב- 20% מהניקוד של הסעיף או השאלה. תשובות שגויות לא יזכו בניקוד. חובה לנמק כל תשובה. לא יינתן ניקוד על תשובות ללא נימוק. קראו את כל המבחן לפני שאתם מתחילים לענות על השאלות. אין צורך להגיש את הטופס בתום הבחינה. את התשובות לשאלות יש לרשום במחברת הבחינה בלבד. בהצלחה!

שאלה 1: bison וניתוח סמנטי (15 נקודות) נתון להלן חלק מקובץ, bison המתאר דקדוק שמאפשר לגזור ביטויים בוליאניים. P rog, Expr, Term, משתני הגזירה בדקדוק הם: Factor TRUE, FALSE, NOT, OR, והאסימונים : AND %% Prog : Expr '\n' ; Expr : Expr OR Term Term ; Term : Term AND Factor Factor ; Factor : NOT Factor '(' Expr ')' TRUE FALSE ; %% - - א) ב) נתון רצף האסימונים הבא: TRUEOR NOT FALSE AND FALSEOR NOT TRUE האם קיים עבורו עץ גזירה חוקי ע"פ הדקדוק הנתון? אם כן ציירו את עץ הגזירה המלא. אם לא, נמקו מדוע לא קיים. אם קיים עץ גזירה, האם הוא יחיד או שישנן עוד אפשרויות לגזור את הביטוי? נמקו. הוסיפו פעולות סמנטיות על מנת שפלט המנתח שנוצר ע"י bison יהיה ערך האמת של הביטוי. הערות: - יש להניח כי בחלק העליון של קובץ ה- bison הובאה ההגדרה הבאה typedef char yystype; אין לשנות את הדקדוק בשום צורה (גם לא עם מרקרים). אין לשנות את טיפוס.YYSTYPE

Prog E E EOR E E E AND E E NOT E E '(' E ') ' E TRUE E FALSE ג) יוסי החליט שהדקדוק המקורי מסובך מדי לתיאור שפת ביטויים בוליאניים. הוא הציע את הדקדוק הבא במקום: מהו השינוי שיוסי צריך לבצע בקוד ה- bison בחלק ה- declarations חלקי קובץ ), bison על מנת שיוכל להשתמש בדקדוק שלו? נמקו. (החלק הראשון מבין שלושת שאלה 2: הקצאות זכרון א. ב. (15 נקודות) תארו יתרון אחד וחיסרון אחד של אלגוריתם סימון וטאטוא על פני אלגוריתם העתקה. נניח שתוכנית משתמשת לאורך זמן בגודל שטח קבוע של 10 מגהבייט. כלומר, במהלך התוכנית אובייקטים מוקצים ומתים, אך סה"כ שטח האובייקטים שבשימוש בכל רגע נתון נשאר 10 מגהבייט. נניח את זה אפילו באופן קיצוני, כלומר על כל אובייקט שנעשה לא נגיש בגודל מסויים, מוקצה מיד אובייקט אחד (או כמה אובייקטים) כך שחוזרים לאותו גודל שטח. כמו כן נניח שלאורך ריצת התוכנית כולה היא מקצה סה"כ שטח של 100 מגהבייט. a. לשם איסוף זבל, משתמשים באלגוריתם העתקה כך שגודל חצי ה- heap הוא 20 מגהבייט. כמה מחזורי איסוף נצטרך לבצע במהלך התוכנית? b. כמה שטח יועתק סה"כ בכל האיסופים במהלך התוכנית? c. נניח עתה שגודל חצי ה- heap הוא 50 מגהבייט. כמה מחזורי איסוף יידרשו עתה? ואיזה שטח יועתק ע"י כל האיסופים במהלך הריצה כולה? d. הכלילו את הדוגמאות לנוסחה עם פרמטרים: גודל השטח הנגיש עבור התוכנית M, גודל חצי ה- heap, H, וכמות הקצאה A לאורך הריצה. הנוסחה תאמר כמה שטח יועתק בכל האיסופים של התוכנית. e. הסבירו, לפי נוסחה זו, מה הקשר בין גודל ה- heap לכמות העבודה שהאיסוף חייב לעשות בזמן ריצתה. האם ניתן לקבוע כך את כמות העבודה להיות קטנה כרצוננו? עבור אילו גדלי - heap כמות העבודה של האיסוף תהיה מינימלית? f. מה המחיר שאנו משלמים כאשר אנו מורידים את כמות העבודה של האיסוף? 15) שאלה 3: מנתחי LL נקודות) א) נסמן: - firstk, followk, selectk פונקציות המתאימות לבניית מנתח.LL(k) ניתן להניח שהקלט אותו מנתחים מסתיים ברצף של k תווי $, עבור ניתוח LL(k) שלו.

נתון הדקדוק הבא: (נסמן את אוסף כללי הגזירה שלו ב ( P S aac abbc A c ca B c רשמו מה מכיל k ( ) select p לכל כלל גזירה מהו ה- k המינימלי שעבורו הדקדוק הוא k שבחרתם מתאים. p P. 1 k בדקדוק הנתון ולכל 4?LL(k) נמקו מדוע k נמוך יותר אינו מתאים ומדוע ה-.1.2 ב) כמה עמודות לכל היותר יהיו בטבלת הניתוח של מנתח LL(k) עם ה- K מסעיף א' 2, עבור דקדוק כלשהו בעל קבוצת טרמינלים הזהה לזו שבדקדוק הנתון? נמקו. בנו את טבלת הניתוח עבור מנתח LL(k) עם ה- K המינימלי שעבורו הדקדוק הוא.LL(k) אין צורך לרשום עמודות ריקות בטבלת הניתוח. ג) האם ניתן למצוא דקדוק שגוזר אותה שפה כמו שפת הדקדוק הנתון, ואשר נמצא ב- LL(k ) עבור k ' < k (כאשר אנו מתייחסים ל- k עליו דובר בסעיף א' 2 ). אם כן, מהו אותו דקדוק ומהו 'k המינימלי העונה על הדרישות? נמקו מדוע הדקדוק ב- LL(k') והוכיחו ששפתו זהה לשפת הדקדוק מסעיף א'. אם לא נמקו מדוע לא ניתן למצוא דקדוק כזה. שאלה 4 מנתחי ) LR 10 נקודות) א) ב) בהינתן אוטומט LR(1) של דקדוק מסוים, תארו כיצד ניתן לזהות אם האוטומט גדול ממש (מבחינת מספר המצבים) לעומת אוטומט LR(0) של אותו דקדוק. פעולת הזיהוי צריכה להתבסס על האוטומט LR(1) הנתון בלבד. הביאו דוגמה לדקדוק G שנמצא ב LR(1), שעבורו אוטומט LR(0) קטן ממש (מבחינת מספר המצבים) מאוטומט LR(1) שלו. יש לבנות את האוטומטים במלואם על מנת להראות כי אכן הדרישה מתקיימת. שימו לב כי ניתן למצוא דקדוק המכיל 2 משתני גזירה ו- 2 טרמינלים המקיים את התנאים. יש לבנות גם את אוטומט LR(0), אפילו אם הוא מכיל קונפליקטים. - -

) 20 נקודות) שאלה - 5 DFA נתונה שפה, עבורה אחת הדרישות שעליה לקיים בזמן ריצה, היא גילוי של הפעלת מתודה על משתנה כאשר המשתנה בעצם מצביע ל-.null למשל: בהפעלת x.f() יש לבדוק האם המשתנה x מצביע ל-.null במקרה שמתגלה ערך null כזה, התוכנית תפסיק את פעולתה ותחזיר הודעת שגיאה. מימוש נאיבי של בדיקה זו ידרוש ביצוע של מספר instructions נוספים בשפת היעד, בכל פעם שיש קריאה למתודה דבר שעשוי לפגוע בביצועי תכניות הכתובות בשפה זו. בשאלה זו נחקור דרכים להקטנת מס' הבדיקות המתווספות בזמן הריצה. x= y # assignment x= y. m( x,..., x ) # method invocation 1 n x= new( A) # createanewobject ( of someclass A) goto L # unconditional jump if x= y gotol # conditional jump תאור הפקודות בשפה: יש להניח כי העברת פרמטרים למתודה היא by-value ולא.by-reference xbar. (); (* 1 *)... xfoo. (); (* 2 *) א) נניח שנתון חלק הקוד הבא: נשים לב שניתן להסיר את הבדיקה של null בשורה 2 אם ידוע שהערך של x לא השתנה מאז הפעם האחרונה בה בדקנו אם x הוא null בשורה 1. לבדיקת התנאי הזה, יש להשתמש בניתוח.DFA הציעו ניתוח DFA שבסופו נוכל לדעת עבור כניסה ויציאה של כל בלוק, לכל משתנה לוקלי, האם יש לבצע את הבדיקה של null על המשתנה. ציינו את פריטי המידע בקבוצות out(b), in(b), את כיוון זרימת המידע, האם הבעיה היא מסוג f B may או, must מהן משוואות הזרימה, מהי הפונקציה וכיצד יאותחלו הקבוצות. ב) בהינתן האנליזה מסעיף א', תארו כיצד ניתן לדעת עבור בלוק נתון כלשהו, ועבור כל פקודה של הפעלת מתודה בתוך הבלוק, האם יש להוסיף את הבדיקה לגילוי הערך null בזמן ריצה או לא. יש להשתמש בערכים שחישבה האנליזה מסעיף א'.

25) שאלה - 6 Backpatching נקודות) בשאלה זו נדון בהרחבה לשפת הדקדוק הבסיסי שראינו בתרגולים. במסגרת ההרחבה, הוחלט לאפשר לביטוי בוליאני להיות משוערך גם לערך, dont _ know פרט לערכים trueו-. false להלן תיאור הסמנטיקה של ערך :dont _ know עבור הקוד הבא בשפת המקור: if ( B) S else S 1 2, S 2 S 1 אם B משוערך ל:, dont _ know אזי יתאפשר ביצוע אקראי בזמן ריצה. ועבור הקוד הבא בשפת המקור: או ביצוע וההחלטה על כך תתבצע באופן if ( B) S 1 S 1 אם B משוערך ל: dont _ know אקראי בזמן ריצה., אזי יתאפשר ביצוע או אי-ביצוע, S 1 וההחלטה על כך תתבצע באופן לשם כך, התווסף לאוסף כללי הגזירה של B (המשתנה הגוזר ביטויים בוליאניים) הכלל:. B dont _ know ). false - טרמינל בדקדוק, בדיוק כמו trueו dontהוא _ know ) gotol 1, בנוסף, לשפת הביניים התווספה הפקודה: L2. L 2 L 1 לבין כתובת הקפיצה כתובת הקפיצה, שמשמעותה היא בחירה אקראית (בזמן ריצה) בין הערה: עבור ביצוע: ) quad, backpatch ( list, אם קיימת ב- listכתובת (נניח ( L שכבר בוצע לה backpatchבמהלך הריצה של המנתח, אזי quad ישורשר (עם אופרטור ',' ( לכתובת האחרונה שהוטלאה בפקודת ה- goto (שכתובתה ( L בעקבות ה- backpatchהקודם שבוצע. טבלאות האמת של פעולות בוליאניות בלוגיקה החדשה מפורטות להלן: עבור פעולת : AND AND עבור פעולת : OR OR

א) בהינתן הלוגיקה החדשה, הציעו סכמת תרגום בשיטת Backpatching עבור כללי הגזירה של המשתנה B. שימו לב להנחיות ולדרישות מהפתרון, המובאים בסוף השאלה. בפרט, שימו לב לכך שאין להוסיף תכונות סמנטיות למשתני הגזירה, מעבר לתכונות הסמנטיות שנלמדו ואשר מפורטות בדף הנוסחאות. להלן כללי הגזירה עבורם עליכם להציע סכימת תרגום: B true B false B dont _ know B B or B 1 2 B B and B 1 2 B E rope 1 2 ב) כעת, הוחלט לשנות את הלוגיקה, כך שבכל פעולה בוליאנית שבה אחד הארגומנטים שוערך ל-. dont _ know תשוערך אף היא ל-,תוצאתה dont _ know הציעו סכמת תרגום בשיטת Backpatching ע"פ הלוגיקה החדשה, עבור כללי הגזירה מהסעיף הקודם. הנחיות לשני הסעיפים: - אין להוסיף תכונות סמנטיות למשתני הגזירה, מעבר לתכונות שהגדרנו בתרגול (ואשר מופיעות בדפי הנוסחאות המצורפים). - אין להוסיף כללי גזירה. - מותר להשתמש אך ורק במרקרים M,N שהכרנו בתרגול (עם הפעולות הסמנטיות שהוגדרו עבורם). - מותר להשתמש בפונקציות עזר נוספות על רשימות,כלומר, על טיפוס.list (מעבר לאלו המפורטים בדפי הנוסחאות). על כל פונקציה שנעשה בה שימוש יש להסביר בקצרה מה הפונקציה מבצעת. בהצלחה!!

נוסחאות ואלגוריתמים כל ההגדרות מתייחסות לדקדוק( S.G = (V, T, P, first(α) = { t T α * tβ β (V T)* } Top Down follow(a) = { t T {$} S$ * αatβ α (V T)* β (V T)*(ε $) } select(a α) = first(α) follow(a) first(α) α * ε otherwise הגדרה: דקדוק G הוא ( LL(1 אם ורק אם לכל שני כללים ב- G השייכים לאותו משתנה A מתקיים: select(a α) select(a β) = הגדרת טבלת המעברים P {error} M : V (T {$}) עבור דקדוק :LL(1) M[A, t] = A α error t select(a α) t select(a α) for all A α P Q.push(S) while!q.empty() do X = Q.pop() t = next token if X T then if X = t then SHIFT else ERROR else end if end while t = next token if t = $ then ACCEPT else ERROR // X V if M[X, t] = error then ERROR else REPLACE(X, t) אלגוריתם מנתח :LL(1)

Bottom Up פריט LR(0) הוא α β) (A כאשר A αβ P סגור (closure) על קבוצת פריטים I מוגדר באופן אינדוקטיבי:.closure(I) = I בסיס: o (B γ) closure(i) גם,B γ P אז לכל,(A α Bβ) closure(i) צעד: אם o ולכל first(βt),x גם פונקציית המעברים של האוטומט: δ(i, X) = { closure(a αx β) (A α Xβ) I } פריט LR(1) הוא t) (A α β, כאשר t T {$},A αβ P סגור (closure) על קבוצת פריטים I מוגדר באופן אינדוקטיבי:.closure(I) = I בסיס: o B γ P אז לכל,(A α Bβ, t) closure(i) צעד: אם o (B γ, x) closure(i) פונקציית המעברים של האוטומט: δ(i, X) = { closure(a αx β, t) (A α Xβ, t) I } SHIFT j δ(i i,t) = I j action[i, t] = REDUCE k rule k is A α, (A α ) I i and t follow(a) ACCEPT (S S ) I i and t = $ ERROR otherwise הגדרת טבלת action למנתח :SLR SHIFT j δ(i i,t) = I j action[i, t] = REDUCE k rule k is A α and (A α, t) I i ACCEPT (S S, $) I i and t = $ ERROR otherwise הגדרת טבלת action למנתח :LR(1) הגדרת טבלת goto למנתח SLR ו- :LR(1) goto[i, X] = j error δ(i i, X) = I j otherwise

אלגוריתם מנתח :shift/reduce Q.push(0) // where 0 is the initial state of the prefix automaton while true do k = Q.top().state t = next token do action[k, t] end while ניתוח סמנטי :L-attributed proceduredfvisit(node n) : foreach child m of n in left-to-right order do evaluate the inherited attributes of m dfvisit(m) end evaluate the synthesized attributes of n אלגוריתם dfvisit לניתוח סמנטי עבור הגדרות ייצור קוד בשיטת Backpatching פונקציות: makelist(quad) merge(list1,list2) emit(code string) nextquad() backpatch(list, quad) newtemp() יוצרת רשימה ריקה עם איבר אחד (ה"חור".(quad מחזירה רשימה ממוזגת של הרשימות list1, list2 מדפיסה קוד בשפת הביניים ומאפשרת להדפיס פקודות קפיצה עם "חורים". מחזירה את כתובת הרביעיה (הפקודה) הבאה שתצא לפלט. מקבלת רשימת "חורים" list וכתובת,quad ו"מטליאה" את הרשימה כך שבכל החורים תופיע הכתובת.quad מחזירה שם של משתנה זמני חדש שאינו נמצא בשימוש בתכנית. משתנים סטנדרטיים: S: גוזר פקודות (statements) בשפה. תכונות: :nextlist o רשימת כתובות של פקודות המכילות חור שיש להטליא בכתובת הפקודה הבאה לביצוע אחרי הפקודה הנגזרת מ- S. B: גוזר ביטויים בוליאניים. תכונות: :truelist o רשימת כתובות של פקודות המכילות חור שיש להטליא בכתובת אליה יש לקפוץ אם הביטוי הבוליאני מתקיים. :falselist o רשימת כתובות של פקודות המכילות חור שיש להטליא בכתובת אליה יש לקפוץ אם הביטוי הבוליאני אינו מתקיים. E: גוזר ביטויים אריתמטיים. תכונות: :E.place o שם המשתנה הזמני לתוכו מחושב הביטוי האריתמטי.

קוד ביניים x := y op z x := op y x := y goto L if x relop y goto L param x call p, n return y x := y [ i ] x [ i ] := y x := addr y x := * y * x := y סוגי פקודות בשפת הביניים: 1. משפטי השמה עם פעולה בינארית 2. משפטי השמה עם פעולה אונרית 3. משפטי העתקה 4. קפיצה בלתי מותנה 5. קפיצה מותנה 6. פרמטרים וקריאה לפרוצדורות indexed assignments.7 8. השמה של כתובות ומצביעים in(b) = out(b) = (S,B) E f B out(s) ( in(b) ) in(b) = Data-Flow Analysis ההגדרות מתייחסות ל.G=(V,E):CFG הצורה הכללית של המשוואות בחישוב סריקה קדמית: או (S,B) E out(s) out(b) = in(b) = f (B,S) E B in(s) out(b) = הצורה הכללית של המשוואות בחישוב סריקה אחורית: או ( out(b) ) (B,S) E in(s)